print("hello World!")

# 变量
# 定义、赋值
# 变量的命名规则：大小写字母、下划线_、数字，不能以数字开头，不能是关键字(保留字)
# 变量在定义的时候就需要赋值
import keyword

print(keyword.kwlist)

name1 = "zhangSan"
# 2name = "lisi" # 不能以数字开头
# name$ = "wangWu"  # 不能包含除下划线以外的其他符号
name5 = "zhao"

# 注释
# # 表示单行注释

# 多行注释
# /* */ Java
"""
多行注释
多行注释
多行注释
一般多行注释多用于 文档注释
"""
'''
多行注释
多行注释
多行注释
'''

# print函数
print("需要打印的值 或者 变量")
print(name1)

# sep 分隔符
# end 结尾
print(1, 2, 3, 4, 5, 6, 7, 8, sep="|", end="")
print(9, 10, 11)

print("*" * 30)

# 数据类型
# 五大基本数据类型
# 整型int、浮点float、字符串str、布尔bool、空类型NoneType

# 整型 int
int1 = 10
print(int1, type(int1))

# 浮点 float
float1 = 1.1
print(float1, type(float1))

# 字符串 str
# 不区分 单双引号
str1 = "abcdef"
str2 = 'ghijklmn'
print(str1, type(str1))
print(str2, type(str2))
# 字符串常见的方法
str3 = "   Java Python Scala C++  "
print(str3)
# strip 去除两边的空格
# 不作用本身 不改变原来的字符串 而是会返回一个新的字符串
# 实际上字符串 它是一个不可变对象
print(str3.strip())
# 查找字符串出现的起始位置
print(str3.find("Python"))
# 查看字符串的长度
print(len(str3))
# 按照指定分隔符 分割字符串 返回一个list
print(str3.split(" "))
# format方法
# 9 9 乘法表
# a * b = c
# {} * {} = {}
print("{} * {} = {}".format(2, 2, 4))
# %d 整数
# %f 小数 %0.2f 保留2位小数
# %s 字符串
print("%0.2f * %s = %d" % (3.3333333, "abc", 9))
print(str3.upper())

# 布尔 bool
# True/False
# 跟Java不一样 首字母是大写的
bool1 = True
bool2 = False
print(bool1, type(bool1))
print(bool2, type(bool2))

# NoneType
none1 = None
print(none1, type(none1))

# 类型之间的转换
# int to str
# 直接使用 str()
int2 = 123
print(str(int2) + "")  # 在Python中int类型的值不能直接和str类型的值相加

# str to int
# 直接使用int()
str3 = "456"
print(str3, type(str3))
print(type(int(str3)))

print("*" * 30)

# int/float to bool
# 除零以外都是True
# str to bool
# 除空字符串以外都是True
# None to bool
# 直接使用bool()
print(bool(0))  # False
print(bool(0.0))  # False
print(bool(-0))  # False
print(bool(1))  # True
print(bool(-1))  # True
print(bool(1.11))  # True
print(bool(-1.11))  # True

print(bool("True"))  # True
print(bool("False"))  # True
print(bool(""))  # False
print(bool("abcd"))  # True

print(bool(None))  # False

# 算术运算符
# + - * / ** // %
int3 = 10
int4 = 4

print(int3 + int4)
print(int3 - int4)
print(int3 * int4)
print(int3 / int4)

print(int3 ** int4)  # 10000 a**b ： a的b次方
print(int3 // int4)  # 2 a//b ：a除以b向下取整（直接舍弃小数位，保留整数，不是四舍五入）
print(int3 % int4)  # 2 a%b：a除以b取余数

# bool类型
bool3 = True
bool4 = False
print(bool3 and bool4)
print(bool3 & bool4)
print(bool3 or bool4)
print(bool3 | bool4)
print(not bool3)
